package com.itheima.controller;


import com.itheima.domain.Code;
import com.itheima.domain.Result;
import com.itheima.exception.BusinessException;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.ResponseBody;


/*将这个类放到controller层是因为注解扫描只扫controller层*/
//统一异常处理; 可对controller中被 @RequestMapping注解的方法加一些逻辑处理。最常用的就是异常处理
@ControllerAdvice
@ResponseBody
public class ExceptionControllerAdvice {
    @ExceptionHandler(BusinessException.class)
    public Result doBusinessException(BusinessException e){

        //封装用户要看的错误信息 :e.getMessage() 获取错误信息(在创建BusinessException对象的时候手动输入错误信息; 然后这里在获得这些信息)
        return new Result(Code.BUSINESS_EXCEPTION_CODE,e.getMessage());
    }

    @ExceptionHandler(Exception.class)
    public Result doException(Exception ex){
        ex.printStackTrace();  //由于条件限制; 暂时将异常信息打印到控制台

        return new Result(Code.BUSINESS_EXCEPTION_CODE,"系统正忙");
    }
}
